"""
结果可视化脚本（空壳示例）+

功能：
- 读取 config.yaml 中的 plot 配置（如果可用）
- 使用 utils.plot_style 中的 set_chinese_font 和 set_plot_style
- 画一个简单的示例图并保存到 figures/ 目录

此脚本应作为示例或快速验证使用。
"""
from pathlib import Path
import sys
from rich.console import Console

# 确保项目根目录在 sys.path 中，便于导入 utils 等顶级模块
project_root = Path(__file__).resolve().parents[1]
if str(project_root) not in sys.path:
	sys.path.insert(0, str(project_root))

try:
	import yaml
except Exception:
	yaml = None

# 示例绘图已移除：如需绘图，请在本模块中添加具体绘图函数并调用 utils.plot_style 中的样式函数

from utils.plot_style import set_chinese_font, set_plot_style, force_chinese_font


def load_plot_config(cfg_path: str = None):
	if cfg_path is None:
		cfg_path = Path(__file__).resolve().parents[1] / 'config.yaml'
	cfg_path = Path(cfg_path)
	if not cfg_path.exists() or yaml is None:
		return None
	try:
		with cfg_path.open('r', encoding='utf-8') as f:
			cfg = yaml.safe_load(f)
		return cfg.get('plot') if isinstance(cfg, dict) else None
	except Exception:
		return None


def make_sample_plot(out_dir: str = 'figures', filename: str = 'sample_plot.png', style_cfg: dict = None):
	out_dir = Path(out_dir)
	out_dir.mkdir(parents=True, exist_ok=True)

	# 应用绘图风格与中文字体
	try:
		set_plot_style(style_cfg or {})
	except Exception as e:
		Console().log(f"设置绘图风格失败：{e}")
	try:
		set_chinese_font(style_cfg.get('font_family') if style_cfg else 'Heiti TC')
	except Exception as e:
		Console().log(f"设置中文字体失败：{e}")
	# 正弦波示例已删除；保留函数用于占位或作为示例入口。
	Console().log('示例绘图（正弦波）已移除。如需生成图形，请在本模块中实现具体绘图函数。')
	return None


def main():
	# 尝试从项目根读取 config.yaml
	repo_root = Path(__file__).resolve().parents[1]
	cfg_path = repo_root / 'config.yaml'
	style_cfg = load_plot_config(cfg_path) if cfg_path.exists() else None

	figures_dir = repo_root / (style_cfg.get('figures_dir') if style_cfg and style_cfg.get('figures_dir') else 'figures')
	make_sample_plot(out_dir=figures_dir, style_cfg=style_cfg)


if __name__ == '__main__':
	main()

